package service;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.ejb.EJB;
import javax.ejb.Local;
import javax.ejb.Stateless;

import dao.TrajetDao;
import dto.TrajetVO;
import entity.Trajet;

// @Stateless pour EJB Session sans état
// @Local pour appel direct local possible (depuis même JVM)
// @Remote pour appel distant possible (via RMI)

// éviter d'intercaler des commentaires

@Stateless
@Local
// @Remote
public class ServiceTrajetDaoBean implements ServiceTrajetDao {

	private TrajetDao trajetDao;

	@EJB(beanName = "TrajetDaoJpa")
	public void setTrajetDao(TrajetDao trajetDao) {
		System.out.println("setTrajetDao effectué dans ServiceTrajetDaoBean");
		this.trajetDao = trajetDao;
	}

	public TrajetDao getTrajetDao() {
		return trajetDao;
	}

	public List<TrajetVO> getAllTrajets() {
		List<Trajet> listeTrajets = trajetDao.getAllTrajets();
		List<TrajetVO> result = new ArrayList<TrajetVO>();
		System.out.println("trace ServiceTrajetDaoBean.getAllTrajets()");
		for (Trajet trajet : listeTrajets) {
			System.out.println(trajet);
			System.out.println(new TrajetVO(trajet));
			result.add(new TrajetVO(trajet));
		}
		return result;
	}

	@Override
	public List<TrajetVO> getTrajets(String depart, String arrivee, Date allee,
			Date retour) {
		List<Trajet> trajets = trajetDao.getTrajets(depart, arrivee, allee,
				retour);

		List<TrajetVO> res = new ArrayList<TrajetVO>(trajets.size());
		for (Trajet trajet : trajets)
			res.add(new TrajetVO(trajet));

		return res;
	}

}
